The combination of our features is guaranteed to reduce the number of screens you need to create, and provide increased functionality for your programs. Our features include, Totals, Tagged-Totals, Count, Minimum, and Maximum. When used with our If you thought a table of tables was good, wait till you see browses of "browsesssss". You can add up to 99 embedded browses on each C3Browse AND C3Form screen. First, create a list box, next, placeyour fields in the list box, third, create a formula for each field inthe embedded browse. You're done. ranging features the results are cumulative giving you great flexibility in mathematical operations. You can use multiple locators with multiple keys. The implementation of this feature requires little more than creating the entry fields, and buttons. You can use a single or double bar to provide full lenght lines in a browse, even if the browse does not contain a full screen of records.This is automatic, simply choose either the single or double line and your done. G I have to check out a problem on another screen the customer just called about. I am in the middle of updating a procedure and it won'tcompile. Now what do I do? Well if you have C3 Templates you're in luck. Just use Clarion's chang: Tired of defining the same hot key in several different procedures. Well you can put that problem to rest with our global hot keys. Not just one or two either, we haven't found a limit yet. We are assuming you could have as many as you hav automatically passed to your reports and batches. * If you use a master data dictionary or even if you don't, you will find this feature very attractive. No more running to the data dictionary to change the "hard coded" location of your files. With this feature you can specify the loca Ok, this one is just for show, or is it? Sometimes when files start getting real large some customer's think their application has locked up. In many places you will find this is automatic, additionally you can include the spinner in your own code. = In conjuction with the automatic lookup functions we also include the ability to add the "mouse down arrow" implemented by many softwaredevelopers. The implementation is not much more difficult than placing the button on the screen, immediat; Attempted printing to ports that do not exist have been the source of more than one bug report, more than one needless service call, and more than one missed deadline. With the simple check of a box on the procedure propeties screen you can enable d if you want to implement thisrun time feature. If you want to implement reverse order permanently in the browse or report, simply check a box on the procedure screen. Tired of declaring a local variable and putting a constant in it so you can establish a range of records to display. In C3 Templates you can put a constant in the range value field. Implementation is Automatic, just do it and it works. 6 The ability to display records of a specific range or value in a different color than the rest of the records in a list. Once again this is a simple formula class. Bear in mind that a formula class can be a function or procedure not j( Optimized Lookups: Looking up values in related files is only performed as required. Clarion's normal behavior is to perform looupsfor ALL related files as each record is placed in the list box. The results of this feature is quicker filling9 Even before Clarion implemented keyboard entry of formulas in the formula area, C3 templates allowed it. Further Clarion limits you to entering only values which could be entered in the expression generator. C3 templates allows? Have you ever had a new user call you and say they don't understand your program, and come to find out they have all empty records and as soon they run the application they end up at the Forms. Well no more this feature stops the user before enterin Message type help is not new to Clarion, however, what about messages users can respond to? The C3 Message function allows developers to display a messages and get the user's response. Programmers can then select next program a ction(s) based on users response. Implement by calling the function with the desired message and response buttons. You have the ability to define a 'default' response selection. > Using the Key Ranging and Equaling Capabilities of C3 Templates you enjoy improved performance due to our record selection method. (This is not filtering.) This has increased flexibility in that it can be used on C3 Reports, Browses, and Batches. / Press a button and the records displayed are those of a specific range, press it again and you have all records. C3 fully implements features which allow the user to select which records to display at run time. These are some of the most co Full implementation of tagging in browses. Buttons provided (but eliminable): tag all, reverse tags, untag all. User may display tagged/untagged or all records. Automatically pass tags to reports and batches allowing the user to select ta gged only or all records. Tagging and Flagging are handled externally to your own data files, this means that you do not have to modify your data files to use these features. + Tagging is useful, but sometimes it would be convenient to save a set of tags for later use. The persistent tagging feature enables you to do just that. If you implement tagging the addition of Flagging requires only one more simple ste3 After implementing tagging on a Browse you might need some way to use these tags to do something productive. Batch Tag Optimize is as simple as checking the box on the procedures properties screen for the batch procedure. Not only 2 Some of the small annoyances of Clarion has been eliminated in C3 Templates. C3 allows you to define your own hot key to abort batch processing. Simply enter the hot key desired in the field provided on the procedures properties screen and you'r This feature allows you to declare a file structure for use as a global variable or memory queue. This has numerous advantages over the normal memory variable declared the global data area. It can get tedious defining the same set of filters for a report, batch and browse process. C3 has cut your workload tremendously through the Global Key Settings and Filter features. Define your key settings and filters one time and they are) One of the most repetitive task in Clarion is creating lookups. Another problem with lookups is the fact you have to use a customer number or other meaningless information to perform the lookup. C3 perfoms lookups on hidden valuA Many times you need a calendar to fill in a date, this is it, but wait, not only is it a display calendar, it is also a lookup calendar capable of filling in a date field. Once in the calendar screen you can go between months and years to select 7 For those DOS users who wish they could sort a list of records on a DOS wild card, well here you go. This not only locates the records of a particular value, but also, this limits the records displayed on the list. No implementationH Ok, your customer has a lot of foriegn clients and it is difficult to pronounce the names let alone spell them. To the rescue soundex locators. By typing a tilde (~) in front of an entry in any locator you now have Soundex locators. Not only d< Creating a single line form for entry on a browse for the simulation of line entry is not a new idea. However, the chore of aligning it and getting it in the correct position is not easy. Checking the Line Entry box ' Many of C3's features implement automatically when a simple relationship exists between two files. If you have child records which relate to a parent file almost without exception you will be placing the value of the parent into the c4 If you have a multitude of check boxes in an application you may want to consider using a Bit Mapped Switch. By using a single long variable you can have 32 on/off switches. This is as simple as declaring a local variable Reverse order browse screens and reports for Clarion and all other file drivers are here, no waiting required. If that isn't enough you can also forward and reverse the browse at run time. Place a button on the screen and not much more is require hild. C3 Templates takes care of this for you. The template code automatically "stuffs" the child with the value of the parent. of list boxes, and increased performance. You implement this feature through the use of a simple formula. es. Use a mouse click or a hot key to perform the lookup operation. This is implemented by use ofa lookup procedure, a return value entry or Default Lookup Procedure. tion of files in the application generator. Now, are you tired of .DAT files, now you can use your own file extensions. p, copy in the Flag_Browse and the Flag Form into the application. You can customize the appearnce of the screen to your own liking, but this too is optional. Flag lists can be merged, update, saved or deleted. T This feature allows you to deny the ability to Add, Delete, or Change records. In normal Clarion removing the buttons does not disable thekeystrokes associated with the Add, Delete or Change records. This feature gives you positive disabling of an All you have to do is declare the prototype on the procedures properties screen and you can write any function or procedure using the source template. Our opening and closing of non-related files allows you to open files that are not even in your file schematic tree. Implementation is only a simple formula away. mplicated and powerful features, yet require little more than; prior planning, a rela- tionship, a formula and a button. F If you don't like the default Format Queue Code written by the template you don't have to live with it. Write your own Format Queue Code. You can implement this by using an embedded source point. This includes the ability to add fields to 3 Templates handles many of it's features through the use of easily implemented formula class. e done. are the tagged records the only ones processed, but also the only ones read, thus increased performance. s for each switch or by using the List_Bit Template. Data storage and memory requirements are greatly reduced. 8 The bit mapped swithes were a great idea, the only problem was that it took a little more effort than we cared for to implement them. Necessity being the mother of invention, we had to make it easier to implement. This ust a formula. This formula class takes any value you would normally use in a formula. required, this is automatic, however, you can disable it. template enables you to switch the bits in a list bit without having to create a check box for each switch. you to enter any legal evaluatable expression, this includes your own functions. e definable keys. We haven't fully tested the maximum limit. You may enable and disable hotkeys for a procedure. the automatic sensing of active ports, and disabling of non-existence ports. Three levels of status checking are available. on a C3 form type procedure you have automatic placement of the form and, automatic handling of no buttons. ely after the field to be looked up. Used with button ranging andequaling features there is great flexibilty in record display, data output, and processing. g the the form on an empty browse and explains what is happening, then asks if this is what he is intending on doing. This is automatic, however, it may be disabled. can store the position upon entering the called procedure and restore it when you return to the base procedure. a date. You can set up you application so this will be functional on every date field. C The Invoice (Header) and Item (Detail) templates provide a quick solution to adding an invoice to your application. The positive control numbering system allows for the numbering of invoices on entryor acceptance of the Invoice. This number ing system prevents the skipping of numbers when an invoice is canceled. These are two distinct templates which require filling the fields in the procedures propterties screen for each. E This is a new feature, with version 113, that allows the programmer to declare a default lookup procedure for a field in the Data Dictionary. Then when ever the field is used for an Entry Field it automatically has the lookup procedure att ached to it. This feature can be disabled at field level in a procedure. Implementation is simple with only a couple of steps. the primary queue of the browse. e template feature and change the troublesome procedure to a C3SaveProc template type and it will be suspended until you convert it back. oes it look for records that are close to the entry, it also filters the browse so that only those records appear on the list. @ This feature enables you to save the position of the record pointer for a file. Normally when you call another procedure from a browse orother procedure upon return you have lost the position of your record pointer. By using SavePosition you All procedure main loop structures have been moved to routines, this will help avoid exceeding dynamic pool limits in large procedures. All C3 Features do not require any source code!!! M C3's family of templates for third party products make implementation simple and easy. Products like C3 Fax, Memo Edit, NetTools, Word Perfect Tools, Fax Tools, and Laser Tools (with more added regularly) are simple to implement and mai ntain using C3's Third Partysupport templates. (Third Party products are not included, they must be purchased separately, vendors include, C3 Dev. Inc., BobCat Systems, Keystone Computer Resources and DatabaseTechnologies.) O If you need to stipulate a condition for a total, which is not all that uncommon, you can do it in a number of ways. The conditional total lets you have the 'true' total and the 'false' total in a single formula yet assign true condition t o one variable and a false condition to a second variable. This feature is a simple to implementas any other formula, the only difference is that a special title goes the formula class line. Q C3 Templates coexists with Clarion's original templates, yes you still have all of your original templates as well as all of your new templates. We do have to chain them together so if Clarion puts a new set of templates out it may take us a day or two to integrate them, but usually not more than that. S There is a formula that allow you to call the lookup from the "When Field Is Completed" field and still placed embedded code either beforeor after the lookup, or both. This allows you to use our automatic lookups and still get the embedded source in the right place. y or all functions.